Robot Having Predetermined Orientation

ABSTRACT

An apparatus including a stator configured to be stationarily connected to a housing; and a rotor configured to have a robot arm connected thereto. The rotor includes a shaft and an robot arm mount adjustably connected to the shaft. The stator and the rotor include mechanical reference locators to temporarily stationarily locate the robot arm mount to the stator for subsequently stationarily fixing the robot arm mount to the shaft.

CROSS REFERENCE TO RELATED APPLICATION

This application is a divisional application of copending U.S.application Ser. No. 15/266,562 filed Sep. 15, 2016, which is acontinuation patent application of U.S. application Ser. No. 14/617,227filed Feb. 9, 2015, which claims priority to U.S. Provisional PatentApplication Ser. No. 61/970,533 filed on Mar. 26, 2014 and to U.S.Provisional Patent Application Ser. No. 61/937,848 filed on Feb. 10,2014 which are hereby incorporated by reference herein in theirentireties.

BACKGROUND Technical Field

The exemplary and non-limiting embodiments relate generally to a robotdrive and, more particularly, to stators, rotors and encoders.

Brief Description of Prior Developments

Substrate transport apparatus are known which have a robot arm and adrive for moving the arm. Encoders are provide to determine the locationof a rotor of the drive relative to a stator of the drive for positionawareness of the drive and, thus, position awareness of the robot arm.

SUMMARY

The following summary is merely intended to be exemplary. The summary isnot intended to limit the scope of the claims.

In accordance with one aspect, an example embodiment is provided in anapparatus comprising a stator configured to be stationarily connected toa housing; and a rotor configured to have a robot arm connected thereto,where the rotor comprises a shaft and an robot arm mount adjustablyconnected to the shaft; where the stator and the rotor comprisemechanical reference locators to temporarily stationarily locate therobot arm mount to the stator for subsequently stationarily fixing therobot arm mount to the shaft.

In accordance with another aspect, an example embodiment methodcomprises locating a shaft of a rotor relative to a stator of a motor;locating a robot arm mount on the shaft; temporarily stationarily fixingthe robot arm mount relative to the stator at a predetermined rotationallocation relative to the stator; and while the robot arm mount istemporarily stationarily fixed relative to the stator at thepredetermined rotational location, stationarily fixing the robot armmount to the shaft by a connection, where the connection allows therobot arm mount to be stationarily fixed to the shaft at a plurality ofangular orientations.

In accordance with another aspect, an example embodiment is provided inan apparatus comprising a housing; and a substrate transport apparatusconnected to the housing, where the substrate transport apparatuscomprises a robot arm and a robot drive configured to move the robotarm, where the robot drive comprises: a motor comprising a stator and arotor; and means for providing predetermined encoder position and motorcommutation position with respect to the robot arm relative to thehousing for preconfigured controllers to be alternatively used tocontrol the motor, for moving the robot arm, without reconfiguring thecontroller for use with the robot drive.

In accordance with another aspect, an example embodiment is provided inan apparatus comprising: a stator configured to be stationarilyconnected to a substrate transport housing; and a rotor configured tohave a robot arm connected thereto, where the rotor comprises a shaftand a robot arm mount adjustably connected to the shaft, where thestator and rotor are configured to adjustably locate the robot arm mountto the shaft to provide a predetermined location of the robot arm mountrelative to the stator to compensate for the stator being located at oneof a plurality of different locations on the substrate transporthousing.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and other features are explained in the followingdescription, taken in connection with the accompanying drawings,wherein:

FIG. 1 is a schematic view of an example embodiment;

FIG. 2 is a diagram illustrating an example method;

FIG. 3 is a diagram illustrating an example method;

FIG. 4 is a partial exploded perspective view of some components of thedrive shown in FIG. 1;

FIG. 5 is a partial cross sectional view of some of the components shownin FIG. 4;

FIG. 5A is a sectional view showing components of an example encoder;

FIG. 6 is a top view of the drive shown in FIG. 4 and a robot armconnected thereto;

FIG. 7 is a diagram illustrating an example method;

FIG. 8 is a diagram illustrating an example method;

FIG. 9 is a partial exploded perspective view similar to FIG. 4 of somecomponents of another example of the drive;

FIG. 10 is a top view of the example shown in FIG. 9;

FIG. 11 is a cross sectional view of the example shown in FIG. 9;

FIG. 12 is a partial exploded perspective view similar to FIG. 4 of somecomponents of another example of the drive;

FIG. 13 is a top view of the example shown in FIG. 12;

FIG. 14 is a cross sectional view of the example shown in FIG. 12;

FIG. 15 is a partial exploded perspective view of some components ofanother example;

FIG. 16 is a top view of the example shown in FIG. 15; and

FIG. 17 is a cross sectional view.

DETAILED DESCRIPTION OF EMBODIMENTS

Conventional robots have multiple axis of motion that may be anysuitable type of joint. These joints typically have motors, positionencoders, transmissions and linkages. Referring to FIG. 1, there isshown a schematic view of an example robot drive 10 of a substratetransport apparatus 2 comprising features as described herein. The robotis a vacuum capable robot. Although the robot drive is described withrespect to a vacuum robot, any suitable robot drive (atmospheric orotherwise) may be provided having features as disclosed. Aside from thepreferred embodiment or embodiments disclosed, the disclosed is capableof other embodiments and of being practiced or being carried out invarious ways. Thus, it is to be understood that the disclosed is notlimited in its application to the details of construction and thearrangements of components set forth in the following description orillustrated in the drawings. If only one embodiment is described herein,the claims hereof are not to be limited to that embodiment. Moreover,the claims hereof are not to be read restrictively unless there is clearand convincing evidence manifesting a certain exclusion, restriction, ordisclaimer.

An example robotic manipulator or apparatus 2 incorporating thevacuum-compatible direct-drive system of one or more embodiments isshown in FIG. 1. The robotic manipulator may be built around frame 101,e.g., an aluminum extrusion, suspended from flange or mountingarrangement 102. Alternatively, the mounting arrangement may be on theside of frame 101, at the bottom of frame 101 or frame 101 may bemounted in any other suitable manner. Frame 101 may incorporate one ormore vertical rail 103 with linear bearings 104 to provide guidance tohousing 105 driven by motor 106 via ball-screw mechanism 107. Only onerail 103 is shown for simplicity. Alternatively, motor housing 105 maybe driven by a linear motor, attached directly to frame 101 or coupledto frame 101 in any other suitable movable or unmovable manner. Motorhousing 105 may incorporate one, two, three, four or more direct-drivemodules as will be described in greater detail below. Housing 105 mayhouse motors 108, 109 equipped with position encoders 110 and 111.Housing 105 is shown as an exemplary structure where housing 105 mayhave portions configured with respect to motors 108, 109 and positionencoders 110 and 111 as will be described in greater detail below.Bellows 120 may be used to accommodate motion of motors 105 alongvertical rail(s) 103, separating the environment where movablecomponents of motors 108, 109 and encoders 110, 111 operate, forinstance vacuum, from the outside environment, for example, atmosphere.

In the example of FIG. 1, two direct-drive modules, each having onemotor and one encoder, are shown. However, any suitable number ofdirect-drive modules with any suitable number of motors and encoders maybe used. Inverted service loop 222 may be utilized to supply power tothe direct-drive module(s) and facilitate signaling between thedirect-drive module(s) and other components of the robotic system, suchas a controller 224, as shown in FIG. 1. The controller 224 comprises atleast one processor 223 and at least one memory 225 having software forcontrolling the drive 10; including control based upon signals from theposition encoders. Alternatively, a regular, non-inverted service loop226 may be employed. As shown in FIG. 1, upper motor 108 may drivehollow outer shaft 112 connected to first link 114 of the robot arm.Lower motor 109 may be connected to coaxial inner shaft 113 which may becoupled via belt drive 115 to second link 116. Another belt arrangement117 may be employed to maintain radial orientation of third link 118regardless of the position of the first two links 114 and 116. This maybe achieved due to a 1:2 ratio between the pulley incorporated into thefirst link and the pulley connected to the third link. In alternateembodiments, any suitable ratio or linkage may be provided. Third link118 may form an end-effector that may carry payload 119, for instance, asemiconductor substrate. It should be noted that the robotic arm of FIG.1 is shown for exemplary purposes only. Any other suitable arm mechanismor drive mechanism may be used either alone or in combination. Forexample, multiple direct-drive modules according to one or moreembodiments may be utilized in a single robotic manipulator or a roboticmanipulator having multiple manipulators or any suitable combination.Here, the modules may be stacked in different planes along substantiallythe same axis of rotation, located concentrically in substantially thesame plane, arranged in a configuration that combines the stacked andconcentric arrangements, or incorporated into the robotic manipulator inany other suitable manner.

The vacuum-compatible direct-drive system of one or more embodiments maycomprise a housing and a radial field motor arrangement including astator and a rotor arranged in the vicinity of the stator so that it mayrotate with respect to the stator and interact with the stator through amagnetic field substantially radial with respect to the axis of rotationof the rotor. Alternatively, an axial field motor or a combinationradial/axial field motor may be provided, or combinations thereof. Thestator may include a set of windings energized by a suitable controllerbased on the relative position of the rotor with respect to the stator.The rotor may include a set of permanent magnets with alternatingpolarity.

In the embodiment shown, the housing may separate an atmospheric typeenvironment on the outside of the housing from a vacuum or othernon-atmospheric environment inside of the housing. Active components,such as the encoder read head or the stator may be fastened to and/orinterface with the housing as will be described, for example, the readhead or stator may be pressed into or otherwise fastened to the housingto eliminate conventional clamping components and may be encapsulated ina suitable material, such as vacuum compatible epoxy based potting, tolimit out-gassing of the components to the vacuum or othernon-atmospheric environment as will be described. Here, the encapsulatedcomponent may be in vacuum, atmosphere or any suitable environment wherethe encapsulation protects the stator from the environment, e.g.,prevents corrosion, and facilitates efficient heat removal. Theencapsulation may also bond the read head or stator to the housing orother component or sub component, further securing the device withrespect to the housing. The wires leading to the windings or otheractive components of the read head or windings of the stator may passthrough an opening of the housing which is sealed by the encapsulation,thus eliminating the need for a separate vacuum feed-through.Alternatively, the read head or stator may be clamped, bolted orattached in any other suitable manner to the housing, and the wiresleading from the atmospheric environment to the windings or other activecomponents of the read head or the windings of the stator may be routedthrough a vacuum feed-through or passed through the wall of the housingin any other suitable manner.

In accordance with one aspect of the disclosed embodiment, a robot driveis provided having a preconfigured and predetermined orientation of anarm with respect to a drive. The orientation may be with respect to anencoder position and a motor commutation position where more than onepreconfigured controller may be utilized to interface to the drivewithout reconfiguration. Similarly, a first drive may be replaced by asecond drive without reconfiguring the controller that was interfacingwith the first drive. Similarly, a first arm may be replaced by a secondarm on a first drive without reconfiguring the controller that wasinterfacing with the first drive. Here, multiple drive units may beinterchangeable without reconfiguring the controller interfacing withthe drives. The drive may be preconfigured by utilizing one or more of acombination of mechanical features, component software configuredfeatures (on board the drive), fixtures or otherwise. By way of example,a stator may have a commutation angle reference to a housing that thestator is fixed to. By way of example, the stator may be installed withan arbitrary commutation reference angle and the controller thenconfigured via a variable to be able to properly commutate the statorand rotor combination. In the disclosed embodiment, the variable withinthe controller may not be required as the drives are interchangeable.This may be accomplished by providing a stator with a predeterminedphase location with respect to the housing, for example, with referencefeatures, feature machined, by fixture set location with orientationfeature or otherwise. Alternately, an adjustable and clockable rotor maybe provided with an arbitrary stator location where the rotor angularorientation may be adjusted relative to the shaft to which it is mountedor otherwise. Similarly, the rotor may be provided with featuresmachined in, clockable or otherwise. Similarly, an encoder may beprovided clockable, with an electronic zero or fixture set with featurelike slot. As will be described in greater detail below, anelectronically set zero may be utilized in an encoder to obviate theneed to fixture set the encoder and stator. Similarly, the output shaftand arm may be adjustable and clockable and used in combination withsetting the encoder to the appropriate zero to commutate. Without theuse of an electronically settable encoder zero, mechanical featuresalone may allow the assembly of the drive and arm such that thecomponents may be assembled without fixtures to make the assemblyrepeatable such that variables are not required to be changes in thecontroller to configure a robot drive and/or arm. Here, exemplarymechanical features include orientation pin and slot mating features,poke yoke features, keyed features or otherwise. In one aspect, the armand drive may be assembled partially or completely with poke yokefeatures such that the encoder position, motor phasing and armorientation are consistent from drive and arm to drive and arm. Inalternate aspects, in addition to or in place of mechanical features,electronic zero features of encoders in combination with fixtures orother features may be provided.

Referring now to FIG. 2 and FIG. 3, there is shown a method that may beimplemented for robot zeroing and having two methods. As seen in FIG. 2,a method is described for encoder-motor phasing and in FIG. 3 a methodis described for arm-encoder phasing.

The purpose of the procedure shown in FIG. 2 is to phase the encoder andmotor so that a predefined commutation angle offset can be used tocommutate the motor based on the position reported by the encoder. Themethod 300 has portion 310 to energize windings of the motor by applyingconstant current between two terminals of the motor. This will energizetwo windings in a wye-configured motor and a single winding in adelta-configured motor. The rotor will move to a position defined by theenergized winding(s). The method 300 has portion 314 to read encoderposition and determine commutation angle offset based on the winding(s)energized, the direction of the current and the encoder position. Themethod 300 has portion 318 to repeat portions 310, 314 for the remainingcombinations of the motor terminals and for currents in oppositedirections. By way of example, this may result in the total of 6distinct encoder position readings and 6 values of commutation angleoffset. In alternate aspects, more or less positions may be used, suchas a single position for example. The method 300 has portion 322 todetermine the minimum and maximum of the 6 values of the commutationangle offset. The difference between the maximum and minimum value maybe calculated. The difference with a predefined accuracy threshold maybe compared. Here, if the difference exceeds the accuracy threshold, themethod may stop and produce an error. The method 300 has portion 324 touse the 6 values of the commutation angle offset to calculate theiraverage and designate the value as the commutation angle offset. Themethod 300 has portion 328 to utilize the commutation angle offset toelectronically re-zero the encoder or assign an encoder location that isnon zero so that the commutation angle offset changes to the predefinedcommutation angle offset. In one aspect, the procedure can be fullyautomated, semi automated or performed manually. In alternate aspects,in portion 310, different current patterns through all three terminalsof the motors may be used to move the rotor to a position defined by thecurrent pattern. Here, there is potentially an infinite number ofpositions, limited just by the resolution of the current control orotherwise. In alternate aspects, in portion 314, 318, any number ofencoder readings associated with different current patterns may beobtained, and any number of values of commutation angle offset may becalculated. In alternate aspects, in portion 322 any suitable method tocheck the validity of the read and calculated data may be used. Inalternate aspects, in portion 324, any suitable technique to determinethe commutation angle offset may be used. In alternate aspects, inportion 328, the rotating part of the encoder, typically the disk, maybe mechanically rotated with respect to the rotor of the motor, or thestationary part of the encoder, typically the read-head, may bemechanically repositioned with respect to the stator of the motor tochange the commutation angle offset to the predefined commutation angleoffset. In alternate aspects, registration features may be used tomechanically align the rotary parts of the encoder and motor, andstationary parts of the encoder and motor to achieve phasing associatedwith the predefined commutation angle offset.

The purpose of the procedure shown in FIG. 3 is to phase the drivenparts of the arm or arm driving component(s) with respect to theencoders so that a predefined configuration of the arm is represented bypredefined values of encoder readings. The method 350 has portion 360 tomove the first driving element, such as a shaft or rotor or otherdriving component, to a location defined by a predefined reading fromthe encoder associated with the first driving shaft. This can be doneunder servo control, manually, using an external fixture or in any othersuitable manner. The method 350 has portion 364 to repeat portion 360for all remaining driving elements (e.g., shafts) of the arm subject tophasing. The method 350 has portion 368 to adjust the arm to thepredefined configuration (which corresponds to the predefined positionsof the driving elements of the arm). For instance, move the links drivenby the drive shafts to the locations that correspond to the encoderreadings associated with the positions of the drive shafts. This can bedone manually, using a fixture, utilizing registration pins or by anyother suitable method. The method 350 has portion 372 to couple thedriven parts of the arm to the driving elements while keeping thedriving elements in the predefined positions described in portions 360,364, and while keeping the predefined arm configuration described inportion 368. The coupling may be mechanically secured upon completion.In the disclosed embodiment, the mechanical design of the coupling maysupport an adequate phasing capability. For example, slotted boltedinterfaces, clamps and other suitable arrangements may be utilized. Inalternate aspects, there may be adjustable components between thedriving elements and the driven parts of the arm that may be used toachieve the desired phasing, for example, as described in greater detailbelow with respect to FIGS. 7 and 8. As an example, a flange with anangular adjustment with respect to the driving shaft may be employed.The flange may include a registration feature that then defines theposition of the driven part of the arm with respect to the flange. Thismay facilitate replacement of arms.

In alternate aspects, registration features may be used to mechanicallyalign the driven parts of the arm with the rotary parts of the encoder.In alternate aspects, adjustability of the moving part of the encoder(disk) with respect to the driving element (shaft) may be provided andutilized. Or adjustability of the rotor of the motor with respect to thedriving element (shaft) may be provided and utilized. Or adjustabilityof the stationary part of the encoder (read-head) with respect to thehousing of the motor and motor stator may be provided and utilized. Inalternate aspects, adjustability of the stator of the motor with respectto the housing of the motor and the stationary part of the encoder maybe provided and utilized.

Referring now to FIG. 4 and FIG. 5 there is shown partial isometricexploded and section views respectively of drive 400 for use as at leastpart of robot drive 10. Drive 400 is shown as a two axis drive forexemplary purposes only. In alternate aspects of the disclosedembodiment, the features described may be applied to more or less axes,for example, to three coaxial axes and one or more vertical (z) axis.Drive 400 has coaxial motor encoder housing 410 with fixedly attachedmounting flange 412. Drive 400 may further have driven shaft (T1) 414and driven shaft (T2) 416. Arm mounting flange 418 is provided coupledto driven shaft 414. Fixture pin 420 may interface with hole 422 offlange 418 and slot 424 of housing 410. Multiple hole patterns 426 onshaft 414 may be provided interfacing with slotted pattern 428 of flange418 such that installation and tightening of screws 430 couples flange418 to shaft 414. The slotted pattern 428 is a curved elongate slotwhich allows the flange to rotate relative to the screws 430 before thescrews are tightened. Consistent with earlier described method, the T1shaft 414 may be placed at a predetermined position, flange 418installed on shaft 414 and fixture pin 420 installed as shown in FIG. 5locking the location of flange 418 relative to housing 410/412. Uponinstallation and tightening screws 430, flange 418 is repeatably coupledand oriented relative to drive housing 410/412. Locating feature(s) 432may be provided such that as drive 400 is installed in a higher levelsystem, the orientation of drive 400 is consistent from unit to unit.Flange 418 further has a hole pattern and locating features 434 suchthat an upper arm may be repeatably mounted thereto, for example, asshown in FIG. 6. Referring now to FIG. 6, there is shown a top view ofrobot 450 having drive 400 and arm assembly 460. Removable fixture 470is further shown as will be described. Arm 460 has upper arm 462,forearm 464, wrist 466 and end effector 468. Arm 460 further has pulley472 coupled to T2 shaft 416 by clamp ring 474. Here clamp ring 474 maycouple shaft 416 to pulley 472 upon tightening of flange 476 (coupled topulley 472). Assembly and location of arm 460 to drive 400 is asfollows. Upper arm 462 is coupled to flange 418 and oriented by locatingfeatures as described. Fixture 470 has pins 478, 480 that interface withmating pinhole and slot of end effector 468. Bosses 482, 484 areprovided on the opposing side of fixture 470 and mate with the outerdiameter of upper arm 462 to establish the radial location andorientation of end effector 468. Bolts 486 may then be tightenedcoupling end effector 468 to wrist 466. Fixture pin 488 may then beinstalled in flange 412 of drive 400 and the combination arm and fixturerotated 490 till face 492 of fixture 470 contacts pin 488. With the T2shaft in the proper orientation, clamp 476 may be tightened couplingpulley 472 to T2 shaft 416. In this manner, arm 460 is coupled to drive400 such that a similar drive and arm combination may use the sameconfigured controller without reconfiguration.

An example of one of the position encoders is shown in FIG. 5A. In thisexample the position encoder comprises a read head 700 on the encoderhousing 410 and a reference disk 702 on the flange 418. The rotationalposition of the flange 418 can be adjusted on the shaft of the rotor tozero the encoder to match a zero commutation angle of the shaft relativeto the stator. Then the fasteners 430 can be tightened to stationarilyfix the flange 418 to the top of the shaft 414.

In one aspect of the disclosed embodiment, a phasing and zeroing methodand apparatus disclosed below. Here, there are provided adjustablecomponents between the driving elements of the robot drive (ex: T1, T2shafts) and the driven parts of the arm (ex: upper arm and shoulderpulley) that may be used to achieve the desired phasing to facilitateinterchangeability between arms, drives and controllers. Further, therequired range of mechanical adjustability may be reduced, for example,from 360 degrees to 12 degrees or otherwise in the implementationdisclosed, which may reduce the slot lengths and number of mountingholes, for example, leading to structural properties supportingstiffness and stability. The adjustment range reduction is facilitatedby the motor phasing and encoder zero or reference setting being able tobe conducted at any of a number of pole locations on the motor statorset where the phasing may be conducted within one or more cycles andwhere multiple electrical cycles make up a single mechanical cycle orrotation. Further, no additional interface or joint that transmitstorque and/or load is introduced, for example, in the T2 axis orotherwise.

Referring now to FIG. 7, there is shown a diagram of encoder-motorphasing method 500. The purpose of method 500 is to phase the encoderand motor so that a predefined commutation angle offset can be used tocommutate the motor based on the position reported by the encoder. Theprocedure produces a set of encoder position offsets that can be appliedto re-zero the encoder to achieve the desired result. In step 510,energize windings of the motor by applying constant current between twoterminals of the motor. This may energize two windings in awye-configured motor and a single winding in a delta-configured motor.The rotor will move to a position defined by the energized winding(s).In step 512, read encoder position and determine commutation angleoffset based on the winding(s) energized, the direction of the currentand the encoder position. In step 514, steps 510 and 512 may be repeatedfor the remaining combinations of the motor terminals and for currentsin opposite directions. This may result in the total of 6 distinctencoder position readings and 6 values of commutation angle offset. Inalternate aspects, more or less distinct readings may be provided. Instep 516, determine the minimum and maximum of the 6 values of thecommutation angle offset. The difference between the maximum and minimumvalue may be calculated. The difference with a predefined accuracythreshold may be compared. If the difference exceeds the accuracythreshold, the method may stop and produce an error. In step 518, the 6values of the commutation angle offset may be used to calculate theiraverage and designate the value as the commutation angle offset. In step520, the commutation angle offset may be utilized to determine anencoder position offset that can be applied to change the commutationangle offset to the predefined commutation angle offset. By way ofexample, for a brushless permanent magnet DC motor with P pole pairs (2Protor magnets), there are P distinct solutions within one revolution,spaced by 360 deg/P from each other. In step 522, select one solution(i.e., one encoder position offset) found in the previous step and useit to electronically re-zero or reference the encoder as described inthe arm-encoder phasing method described below. In one aspect, themethod may be fully automated. Alternatively, in step 510, differentcurrent patterns through all three terminals of the motors may be usedto move the rotor to a position defined by the current pattern. Theremay be an infinite number of positions, limited just by the resolutionof the current control. Alternatively, in steps 512 and 514, any numberof encoder readings associated with different current patterns may beobtained, and any number of values of commutation angle offset may becalculated. Alternatively, in step 516, any suitable method to check thevalidity of the read and calculated data may be used. Alternatively, instep 518, any suitable technique to determine the commutation angleoffset may be used.

Referring now to FIG. 8, there is shown a diagram of arm-encoder phasingmethod 550. The purpose of this method is to phase the driven parts ofthe arm with respect to the encoders so that a predefined configurationof the arm is represented by predefined values of encoder readings. Atthe same time, the procedure allows the use of the predefinedcommutation angle offset as described in the encoder-motor phasingmethod above.

The method may utilize the following hardware, as shown in FIGS. 9-17.As seen in FIGS. 12, 14 and 15, T1 adapter flange 580 is shown. In theexample implementation, T1 adapter 580 is configured to attach to the T1shaft via 6 mounting screws. The T1 adapter features 6 semi-circularslots for the 6 mounting screws. The slots allow for angular adjustmentof the T1 adapter with respect to the T1 shaft within a 12-deg range(the required range depends on the number of mounting holes in the T1shaft and the number of motor pole pairs). The T1 adapter also featuresa pair of pins that locate uniquely the upper arm of the linkage withrespect to the T1 adapter. As seen in FIGS. 12, 14, 15 and 17, T2 cap582 is shown. In the example implementation, T2 cap 582 is configured toattach to the T2 shaft via 3 screws using 6 mounting holes in the T2shafts. The T2 cap features 3 semi-circular slots for the 3 mountingscrews. The slots allow for angular adjustment of the T2 cap withrespect to the T2 shaft within a 12-deg range (the required rangedepends on the number of mounting holes in the T2 shaft and the numberof motor pole pairs). The T2 cap also features a pin that locatesuniquely the keyless bushing and pulley in the linkage with respect tothe T2 cap. The T2 cap does not transmit any torque-torque istransmitted strictly via the keyless bushing. As seen in FIGS. 9, 10 and11, fixture 584 is shown to select correct encoder offset (out of the Pavailable solutions). Fixture 584 features 6 12-deg slots that mimic theslots in the T1 adapter and 3 12-deg slots that mimic the slots in theT2 cap (any number of slots between 1 and 6 can be used). The correctangular position of the fixture may be set using a pin that dropsthrough a precision hole in the fixture to a precision radial slot inthe flange of the robot drive. As seen in FIGS. 12, 13 and 14, fixture586 is shown to accurately define angular position of the T1 adapter andT2 cap with respect to the flange of the robot drive. The fixtureregisters with respect to the T1 adapter using the pair of pins on theT1 adapter. The fixture registers with respect to the T2 cap using thepin on the T2 cap. The correct angular position of the fixture is setusing a pin that drops through a precision hole in the fixture to aprecision radial slot in the flange of the robot drive.

Referring now to FIG. 8, there is shown a diagram of arm-encoder phasingmethod 550. In step 560, install fixture 584 to select correct encoderoffset. This includes inserting a pin through a precision hole in thefixture into a precision radial slot in the flange of the robot drive toset the angular orientation of the fixture with respect to the flange ofthe robot drive. In step 562, move T1 shaft incrementally to positionsthat correspond to the different solutions found in the encoder-motorphasing method. The solution may be selected for which mounting holes inthe T1 shaft show in the slots in the fixture, and electronicallyre-zero or reference the encoder. In step 564, move T2 shaftincrementally to positions that correspond to the different solutionsfound in the encoder-motor phasing method above. The solution may beselected for which mounting holes in the T2 shaft show in the slots inthe fixture, and electronically re-zero or reference the encoder.Fixture 584 may be removed to select correct encoder offset. In step566, place the T1 adapter 580 in position on the T1 shaft. In step 568,place T2 cap 582 in position on the T2 shaft. Here, mounting screws maynot be installed at this point. In step 570, install the fixture 586 toaccurately define angular position. For example, this may includeinserting a pin through a precision hole in the fixture into a precisionradial slot in the flange of the robot drive to set the angularorientation of the fixture with respect to the flange of the robotdrive. In the process, engage the pair of pins in the T1 adapter and thepin in the T2 cap with the fixture. In step 572, install screws thatcouple the T1 adapter 580 to the T1 shaft and screws that couple the T2cap 582 to the T2 shaft while keeping the T1 and T2 shafts in position,e.g., using servo control or otherwise. Here, the fixture 586 may beremoved. As will be described, the arm may now be mounted in arepeatable and replaceable fashion. In alternate aspects, any number ofmounting holes and screws for the T1 adapter and T2 cap may be used. Theminimal length of the slots depends on the number of mounting holes inthe shafts and the number of motor pole pairs. Alternatively, instead ofstepping through the solutions as described in 562 and 564 above, theshafts can be moved to a given position that allows for properattachment of the arm, the encoder positions of the shafts can be readand the readings can be used to select the correct encoder offsetsolutions. The shafts can then be repositioned based on the selectedsolutions, and the T1 adapter and T2 cap can be installed as describedin 570 and 572 above. In alternate aspects, the features associated withsteps 560-564 may be conducted with fixture 586; requiring a singlefixture.

Referring to FIG. 9 there is shown a partial isometric view of vacuumrobot drive 600 and roughing fixture 584. Referring also to FIG. 10there is shown a top view of vacuum robot drive 600 and roughing fixture584. Referring also to FIG. 11 there is shown a partial section view ofvacuum robot drive 600 and roughing fixture 584. Drive 600 has T1 shaft610, T2 shaft 612, flange 614 and housing 616. Here housing 616 issealed and coupled to flange 614 where T1 shaft 610 and T2 shaft 612 arecoaxially rotatable with respect to flange 614 and housing 616. Inalternate aspects, T1 shaft 610 and T2 shaft 612 may be axiallymoveable, for example, in a Z direction with respect to flange 614 andhousing 616. In alternate aspects, more or less shafts may be provided.For example, the features of the disclosed embodiment may be applied topositively locate more or less rotary axis with respect to a fixedreference. Referring also to FIGS. 12-15, T1 adapter flange 580 isshown. In the example implementation, T1 adapter 580 is configured toattach to the T1 shaft 610 via 6 mounting screws 620. The T1 adapterfeatures 6 semi-circular slots 622 for the 6 mounting screws 620. Theslots 622 allow for angular adjustment of the T1 adapter 580 withrespect to the T1 shaft 610 within a 12-deg range (the required rangedepends on the number of mounting holes in the T1 shaft and the numberof motor pole pairs). The T1 adapter 580 also features a pair of pins624, 626 that locate uniquely the upper arm of the linkage with respectto the T1 adapter. For example, the pins may be of differing diametersto uniquely locate the upper arm. Referring also to FIGS. 12-15 and 17,T2 cap 582 is shown. In the example implementation, T2 cap 582 isconfigured to attach to the T2 shaft 612 via 3 screws using 6 mountingholes in the T2 shaft 612. The T2 cap 582 features 3 semi-circular slots632 for the 3 mounting screws 630. The slots 632 allow for angularadjustment of the T2 cap with respect to the T2 shaft 612 within a12-deg range (the required range depends on the number of mounting holesin the T2 shaft and the number of motor pole pairs). The T2 cap 582 alsofeatures a pin 636 that locates uniquely the keyless bushing 638 andpulley 640 in the linkage with respect to the T2 cap 582. The T2 cap 582does not transmit any torque-torque is transmitted strictly via thekeyless bushing 638. As seen in FIG. 15, arm 602 and drive 600 are shownwhere arm 602 has forearm 604, upper arm 606, pulley 640 and endeffector 610. FIG. 17 refers to a partial cross section of drive 600with arm 602 installed. Cap 582 is fastened to T2 shaft 612 afterlocation by the method previously described. Keyless bushing 638 hasslot 642 that mates with pin 636 of cap 582. Keyless bushing 638 furtherhas slot 644 that mates with pin 646 of pulley 640. Tapered clamp collar(ex: ringfeder) 648 is compressed when keyless bushing 638 is bolted topulley 640 positively coupling pulley 640 to T2 shaft 612. In thismanner the T2 cap 582 does not transmit any torque as tapered clampcollar (ex: ringfeder) 648 transmits torque from coupling pulley 640 toT2 shaft 612. Further, the T2 cap 582 is also uniquely located withrespect to pulley 640 via the pins and slots and keyless bushing 638.Referring to FIGS. 9-11, fixture 584 is shown to select correct encoderoffset (out of the P available solutions). Fixture 584 features 6 12-degslots 650 that mimic the slots in the T1 adapter and 3 or 6 12-deg slots652 that mimic the slots in the T2 cap (any number of slots between 1and 6 can be used). The correct angular position of the fixture is setusing a pin 654 that drops through a precision hole 656 in the fixtureto a precision radial slot 658 in the flange or housing of the robotdrive. Referring to FIGS. 12-14, fixture 586 is shown to accuratelydefine angular position of the T1 adapter and T2 cap with respect to theflange of the robot drive. The fixture 586 registers with respect to theT1 adapter 580 using the pair of pins 624, 626 on the T1 adapter 580.The fixture 586 registers with respect to the T2 cap 582 using the pin636 on the T2 cap 582. The correct angular position of the fixture 586is set using a pin 570 that drops through a precision hole 572 in thefixture, through a hole 574 in the flange 580 to a precision radial slot658 in the flange or housing of the robot drive.

Three phase brushless motors are commutated based on the rotary positionof the rotor considered with respect to the stator. For this purpose,the rotor position is read by an encoder. However, there remains thequestion of where the encoder position is with respect to specific coilphases of the three phase winding in the stator. This information isreferred to as the motor phase or, motor offset or sometimes as themotor hall offset. It is noted that the last name can be a misnomer asthe commutation process relevant here may not have hall sensors or anyother hall-effect devices.

Conventionally the motor phase may be determined by an auto-phasingprocedure built into a three phase brushless motor amplifiers. Theauto-phase procedure determines the motor phase. For example, the motorphase may be equal to the difference in angle, expressed in electricaldegrees, between the motor's electric angle zero and the encoderposition zero. Here, the motor phase thus determined is a function ofwhere the encoder target is installed with respect to the rotor shaft,and in general varies from assembly to assembly.

In the disclosed, all or common assemblies may have the same motorphase, typically zero or some suitable reference. This can be achievedby offsetting the encoder position zero to match up with the motorelectric angle zero. This makes the difference between the two zero, andthus the motor phase is zero. For example, this may be referred to aszero phasing.

The encoder position zero can be offset in one or more methods, based onthe ability/technology of the encoder. One method writes an offset thatis stored on the encoder. The encoder thereafter reports a position thatis always shifted by said offset. In another method the encoder offsetcannot be directly written to. In this case the encoder and motor rotorneed to be rotated together, to a position where the motor electricalangle is zero, at which point the encoder is instructed to regard thisnew position as its new position of reference, or its new zero or othersuitable reference. The encoder may achieve this by calculating anoffset and thereafter reporting a position that is always shifted bythis offset.

An algorithm for Zero Phasing when the encoder supports Position Offsetis disclosed as follows.

The algorithm for zero phasing motors with encoders that supportposition offset may be as follows:

-   -   1) Change motor phase on amplifier to zero. Starting with a        nonzero phase may cause the underlying mathematics to be        invalidated.    -   2) Change encoder offset on encoder to zero. Starting with a        nonzero offset may cause the underlying mathematics to be        invalidated.    -   3) Apply phasing current to motor and change the commanded        electrical position to m_(i)=[30, 90, 150, 210, 270] allowing        the motor to come to rest before changing the commanded        electrical position. Read the encoder position for each of the        commanded position.    -   4) Un-wrap the encoder positions if required and convert to        mechanical degrees θ_(i).    -   5) Determine the angular offset ø_(i), for each set of data        recorded above, in mechanical degrees, between the encoder and        motor electrical angle:

$\varnothing_{i} = {\theta_{i} - \frac{m_{i}}{n_{pp}} - \frac{\left( {N - 1} \right)*360}{n_{{pp}\;}}}$

-   -   6) Here, n_(pp) is number of pole pairs on the rotor, and N is        the smallest integral multiple of 360 electrical degrees,        expressed in mechanical degrees, that can fit within θ_(i)    -   7) The angular offsets ø_(i) calculated above are a measure of        the nearest mechanical position offset that corresponds to an        electrical position of 0. Or stated differently, if the shaft is        rotated by a negative of this amount it would reach a position        corresponding to a zero electrical angle. The average mechanical        angular offset is then calculated as the average of ø_(i).    -   8) The average mechanical angular offset can be converted to        electrical degrees, and wrapped so that it lies in the range 0        to 2π, the resulting number is the motor phase as expressed in        electrical measure. This number is numerically the same as the        result of the auto-phasing procedure, if one were to be        performed.    -   9) If the average mechanical angular offset is converted to        encoder counts and written to the registers on the encoder,        taking care of the sign, the effect would be the same as        shifting the encoder with respect to the rotor, such that the        encoder and motor electrical angle zeros now coincide.    -   10) At this moment the motor is zero phased, or to put it        another way, any subsequent attempts to auto-phase the motor        would evaluate a motor phase of zero or the assigned reference        location.    -   11) In extension it is possible to set up a set of numbers,        referred to as the encoder offset solutions, such that any one        of them would achieve the effect of zero phasing as described        above. However this would allow the physical zero position of        the encoder to be moved. These solutions are simply 360        electrical degree offsets to the average mechanical angular        offset, taking care of all the necessary conversions and signs.        The advantage of this extension is that the shaft tied to the        encoder may now report zero at a set of different locations with        respect to the robot.

An algorithm for Zero Phasing when the encoder does not support PositionOffset is disclosed as follows.

The algorithm for zero phasing motors with encoders that do not supportposition offset follows the procedure above till step 7. At which pointthe encoder/rotor pair is physically rotated to the new position suchthat the electrical angle is zero. The encoder is then zeroed or set ata given reference location and the encoder and motor electrical anglezeros now coincide.

Alternatively, the motor could have been commanded to the zeroelectrical angle position and the encoder could have been zeroed.

An example apparatus comprises a stator configured to be stationarilyconnected to a housing; and a rotor configured to have a robot armconnected thereto, where the rotor comprises a shaft and an robot armmount adjustably connected to the shaft; where the stator and the rotorcomprise mechanical reference locators to temporarily stationarilylocate the robot arm mount to the stator for subsequently stationarilyfixing the robot arm mount to the shaft.

The mechanical reference locators may comprise holes configured toreceive a fixture pin to align the robot arm mount to the stator. Thefixture pin may be configured to temporarily slide into the holes toalign axial rotation position of the robot arm mount relative to thestator. The apparatus may further comprise fasteners which stationarilyfix the robot arm mount to the shaft, where the robot arm mountcomprises curved fastener slots configured to receive the fasteners andallow the robot arm mount to be adjusted to an angular rotated positionon the shaft before the fasteners stationarily fix the robot arm mountto the shaft. The housing may be a substrate transport housing, andwhere the stator is on an encoder housing which comprises a locatingfeature to align the encoder housing with the substrate transporthousing at a predetermined rotational angle in a receiving area of thehousing. The apparatus may further comprise an encoder configured tosense a rotational angle of the rotor relative to the stator, where theapparatus is configured to determine a commutation angle offset. Theapparatus may be configured to re-zero the encoder based upon thecommutation angle offset. The apparatus may further comprise a robot armconnected to the rotor and an encoder configured to sense location ofthe rotor relative to the stator, where the apparatus is configured tophase a driven part of the robot arm with respect to the encoder. Asubstrate transport apparatus may be provided comprising a substratetransport apparatus housing; a robot drive as described above and atleast one encoder; a robot arm connected to the robot drive, where therobot arm is configured to support at least one substrate thereon; and acontroller comprising at least one processor and at least one memory,where the controller it connected to the robot drive to control movementof the robot drive and the robot arm.

An example method comprises locating a shaft of a rotor relative to astator of a motor; locating a robot arm mount on the shaft; temporarilystationarily fixing the robot arm mount relative to the stator at apredetermined rotational location relative to the stator; and while therobot arm mount is temporarily stationarily fixed relative to the statorat the predetermined rotational location, stationarily fixing the robotarm mount to the shaft by a connection, where the connection allows therobot arm mount to be stationarily fixed to the shaft at a plurality ofangular orientations.

Locating the shaft of the rotor relative to the stator may compriseenergizing the motor to move the rotor to a predetermined commutationangle. Temporarily stationarily fixing the robot arm mount relative tothe stator may comprise inserting a removable fixture pin into alignedholes in the robot arm mount and the stator. The connection may comprisefasteners which stationarily fix the robot arm mount to the shaft, wherethe robot arm mount comprises curved fastener slots configured toreceive the fasteners and allow the robot arm mount to be adjusted to anangular rotated position on the shaft before the fasteners stationarilyfix the robot arm mount to the shaft. An encoder may be provided todetermined angular rotational position of the rotor relative to thestator, and the method further comprising determining a commutationangle offset for the motor and re-zero the encoder based upon thecommutation angle offset. A robot arm may be connected to the rotor andan encoder is provided which is configured to sense location of therotor relative to the stator, where the method further comprises phasinga driven part of the robot arm with respect to the encoder.

An example apparatus may comprise a housing; and a substrate transportapparatus connected to the housing, where the substrate transportapparatus comprises a robot arm and a robot drive configured to move therobot arm, where the robot drive comprises: a motor comprising a statorand a rotor; and means for providing predetermined encoder position andmotor commutation position with respect to the robot arm relative to thehousing for preconfigured controllers to be alternatively used tocontrol the motor, for moving the robot arm, without reconfiguring thecontroller for use with the robot drive. The means may comprise themechanical and electrical configurations as described above for example.

An example apparatus may comprise a stator configured to be stationarilyconnected to a substrate transport housing; and a rotor configured tohave a robot arm connected thereto, where the rotor comprises a shaftand a robot arm mount adjustably connected to the shaft, where thestator and rotor are configured to adjustably locate the robot arm mountto the shaft to provide a predetermined location of the robot arm mountrelative to the stator to compensate for the stator being located at oneof a plurality of different locations on the substrate transporthousing.

It should be understood that the foregoing description is onlyillustrative. Various alternatives and modifications can be devised bythose skilled in the art. For example, features recited in the variousdependent claims could be combined with each other in any suitablecombination(s). In addition, features from different embodimentsdescribed above could be selectively combined into a new embodiment.Accordingly, the description is intended to embrace all suchalternatives, modifications and variances which fall within the scope ofthe appended claims.

1-9. (canceled)
 10. A method comprising: locating a shaft of a rotorrelative to a stator of a motor; locating a robot arm mount on theshaft; temporarily stationarily fixing the robot arm mount relative tothe stator at a predetermined rotational location relative to thestator; and while the robot arm mount is temporarily stationarily fixedrelative to the stator at the predetermined rotational location,stationarily fixing the robot arm mount to the shaft by a connection,where the connection allows the robot arm mount to be stationarily fixedto the shaft at one of a plurality of angular orientations.
 11. A methodas in claim 10 where locating the shaft of the rotor relative to thestator comprises energizing the motor to move the rotor to apredetermined commutation angle.
 12. A method as in claim 10 wheretemporarily stationarily fixing the robot arm mount relative to thestator comprises inserting a removable fixture pin into aligned holes inthe robot arm mount and the stator.
 13. A method as in claim 10 wherethe connection comprises fasteners which stationarily fix the robot armmount to the shaft, where the robot arm mount comprises curved fastenerslots configured to receive the fasteners and allow the robot arm mountto be adjusted to an angular rotated position on the shaft before thefasteners stationarily fix the robot arm mount to the shaft.
 14. Amethod as in claim 10 where an encoder is provided to determined angularrotational position of the rotor relative to the stator, and the methodfurther comprising determining a commutation angle offset for the motorand re-zero the encoder based upon the commutation angle offset.
 15. Amethod as in claim 10 where a robot arm is connected to the rotor and anencoder is provided which is configured to sense location of the rotorrelative to the stator, where the method further comprises phasing adriven part of the robot arm with respect to the encoder. 16-17.(canceled)
 18. A method as in claim 10 further comprising: energizing afirst winding of the stator of motor with a constant current; reading anencoder position for the motor while the first winding is energized;determining a first commutation angle offset based upon the read encoderposition while the first winding is energized; and using the determinedfirst commutation angle offset to electronically re-zero the encoder orassign a location of the encoder to provide a predefined commutationangle offset.
 19. A method as in claim 18 further comprising: energizinga second winding of the stator the motor with a constant current;reading the encoder position for the motor while the second winding isenergized; determining a second commutation angle offset based upon theread encoder position while the second winding is energized; and usingthe determined second commutation angle offset to electronically re-zerothe encoder or assign a location of the encoder to provide thepredefined commutation angle offset.
 20. A method comprising: energizinga first winding of a motor with a constant current; reading an encoderposition for the motor while the first winding is energized; determininga first commutation angle offset based upon the read encoder positionwhile the first winding is energized; and using the determined firstcommutation angle offset to electronically re-zero the encoder or assigna location of the encoder to provide a predefined commutation angleoffset.
 21. A method as in claim 20 further comprising: energizing asecond winding of the motor with a constant current; reading the encoderposition for the motor while the second winding is energized;determining a second commutation angle offset based upon the readencoder position while the second winding is energized; and using thedetermined second commutation angle offset to electronically re-zero theencoder or assign a location of the encoder to provide the predefinedcommutation angle offset.
 22. A method as in claim 21 further comprisingdetermining an average commutation angle offset, where the averagecommutation angle offset comprises the determined first and secondcommutation angle offsets, and using the average commutation angleoffset to electronically re-zero the encoder or assign a location of theencoder to provide the predefined commutation angle offset.
 23. A methodas in claim 21 further comprising: determining a minimum value and amaximum value of the determined commutation angle offsets; determining adifference between the minimum value and the maximum value; comparingthe difference to an accuracy threshold value; and performing apredetermined operation when the difference exceeds the accuracythreshold value.
 24. A method as in claim 20 where the energizing of thefirst winding of the motor with the constant current is with a firstcurrent pattern, and the method further comprises: energizing the firstwinding of the motor with at least one different current pattern;reading the encoder position(s) for the motor while the first winding isenergized with the at least one different current pattern; determiningthe first commutation angle offset based upon the read encoderpositions.
 25. A method as in claim 20 further comprising mechanicallyrotating a rotating portion of the encoder relative to a rotor of themotor to change the commutation angle offset to the predefinedcommutation angle offset.
 26. A method as in claim 20 further comprisingmechanically rotating a stationary portion of the encoder relative to astator of the motor to change the commutation angle offset to thepredefined commutation angle offset.
 27. A method as in claim 20 furthercomprising: locating a shaft of a rotor relative to a stator of themotor; locating a robot arm mount on the shaft; temporarily stationarilyfixing the robot arm mount relative to the stator at a predeterminedrotational location relative to the stator; and while the robot armmount is temporarily stationarily fixed relative to the stator at thepredetermined rotational location, stationarily fixing the robot armmount to the shaft by a connection, where the connection allows therobot arm mount to be stationarily fixed to the shaft at a plurality ofangular orientations, where registration features are used tomechanically align rotary parts of the encoder and the motor, and/orstationary parts of the encoder and the motor to achieve phasingassociated with the predefined commutation angle offset.
 28. A method asin claim 20 further comprising: move a first driving element of themotor to a location based upon a predefined reading from the encoder;adjust a robot arm to a predefined configuration; and couple a drivenpart of the robot arm to the first driving element of the motor.
 29. Amethod as in claim 26 further comprising: temporarily stationarilyfixing a robot arm mount relative to a stator of the motor at apredetermined rotational location relative to the stator by a fixture;and while the robot arm mount is temporarily stationarily fixed relativeto the stator at the predetermined rotational location, stationarilyfixing the robot arm mount to the shaft by a connection, where theconnection allows the robot arm mount to be stationarily fixed to theshaft at one of a plurality of angular orientations.
 30. A method as inclaim 27 where the first driving element is a shaft of the motor and themethod comprises incrementally moving the shaft to positions thatcorrespond to the different solutions found in encoder-motor phasingwhere mounting holes in the shaft show in slots in the fixture, and thenelectronically re-zero or reference the encoder.
 31. A method as inclaim 28 further comprising removing the fixture after the robot armmount is stationarily fixed to the shaft by the connection.